package com.xkcyy.one.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 脚本实体类
 * 
 * @author yuand
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("script")
public class Script extends BasicEntity {

    /**
     * 脚本名称
     */
    private String name;

    /**
     * 脚本描述
     */
    private String description;

    /**
     * 所属用户ID
     */
    private Long userId;

    /**
     * 脚本内容
     */
    private String content;

    /**
     * 是否编译通过
     */
    private Boolean compiled;

    /**
     * 编译字节码
     */
    private byte[] compiledContent;

    /**
     * 最后编译时间
     */
    private LocalDateTime lastCompileTime;

    /**
     * 版本号
     */
    private Integer version;

    /**
     * 依赖列表(JSON格式)
     */
    private String dependencies;

    /**
     * 权限级别(LOW/MEDIUM/HIGH)
     */
    private String permissionLevel;

    /**
     * 资源限制(JSON格式)
     */
    private String resourceLimits;

    /**
     * 权限级别枚举
     */
    public static class PermissionLevel {
        /**
         * 低级权限
         */
        public static final String LOW = "LOW";

        /**
         * 中级权限
         */
        public static final String MEDIUM = "MEDIUM";

        /**
         * 高级权限
         */
        public static final String HIGH = "HIGH";
    }
}